package vis.core.common.valid.handler;


import vis.core.common.util.StringKit;
import vis.core.common.util.ArrayKit;
import vis.core.common.valid.Enum;
import vis.core.common.valid.base.ValidBaseHandler;
import vis.core.domain.sys.ServiceException;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 枚举校验规则实现
 */
@Component
public class EnumHandler implements ValidBaseHandler<Enum, String> {

    // 第一个参数应该是注解
    @Override
    public void valid(Enum annotation, String paramName, String paramValue) {
        if (StringKit.isBlank(paramValue))
            throw new ServiceException(StringKit.blankDefStr(annotation.msg(), "参数：" + paramName + "，不能为空"));

        String[] menuValue = annotation.value();

        List<String> list = ArrayKit.asList(menuValue);

        if (!list.contains(paramValue))
            throw new ServiceException(StringKit.blankDefStr(annotation.msg(), "参数：" + paramName + "，范围不匹配"));
    }

}
